package com.codefish.framework.spring.core.io;

import com.codefish.framework.spring.core.utils.ResourceUtils;

/**
 * 加载资源的策略接口，根据不同的资源路径格式获取不同类型的Resource
 *
 * @author <a href='https://gitee.com/hzf2281'>codefish</a>
 * @version 1.0.0
 * @since 2022/09/30 下午 03:24
 */
public interface ResourceLoader {
    /**
     * 标识类路径的前缀
     */
    String CLASSPATH_URL_PREFIX = ResourceUtils.CLASSPATH_URL_PREFIX;
    String HTTP_URL_PREFIX = "http://";
    String HTTPS_URL_PREFIX = "https://";

    /**
     * 根据路径格式获得对于的Resource
     *
     * @param location 路径
     * @return 能够解析路径的Resource对象
     */
    Resource getResource(String location);

    /**
     * 获取用于加载资源的ClassLoader
     *
     * @return classLoader
     */
    ClassLoader getClassLoader();
}
